﻿namespace ChessToys.QueensProblem
{
    using System.Collections.Generic;
    using ChessToys;

    /// <summary>
    /// Implementations solve the eigth queen problem. For a given n compute all <see cref="Board"/> with
    /// size n x n placed n queen on it without conflicts. A conflict mean that at least one of the placed
    /// queens can capture an other. Further reading: http://en.wikipedia.org/wiki/Eight_queens_puzzle
    /// </summary>
    public interface IQueensProblemSolver
    {
        /// <summary>
        /// Solves the queens problem for the specified n.
        /// </summary>
        /// <param name="n">The n.</param>
        /// <returns>All solutions for the queens problem size n.</returns>
        ISet<Board> Solve(int n);
    }
}
